/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.syncro.registro.services;

import com.syncro.registro.entities.Despacho;
import com.syncro.registro.entities.Grupo;
import java.math.BigDecimal;
import java.math.BigInteger;

/**
 *
 * @author bcamargo
 */
public class ComunicacionServiceMock implements IComunicacionService{

    Object[][] mGrupos;
    int mContador = 0;
    int mNumGruposPedidos;
    DespachoServiceMock mParent;
    public ComunicacionServiceMock(DespachoServiceMock parent)
    {
        mParent = parent;
    }

    public void pedirDisponibilidadGrupo(Grupo[] grupos, int numGruposPedidos) {

        mGrupos = new Object[4][2];
        mNumGruposPedidos = numGruposPedidos;
        for(int i = 0; i < grupos.length; i++)
        {
            Thread th = new ComunicacionServiceThreadMock(grupos[i], this);
            th.start();
        }
    }    

    public synchronized void finalizarThread(long numDisponibles, Grupo grupo)
    {
        if(mNumGruposPedidos > 0)
        {
            Despacho temp = new Despacho();
            if(mNumGruposPedidos > numDisponibles )
            {
                temp.setUnidadesenviadas(BigInteger.valueOf(numDisponibles));
                mNumGruposPedidos -= numDisponibles;
            }
            else
            {
                temp.setUnidadesenviadas(BigInteger.valueOf(mNumGruposPedidos));
                mNumGruposPedidos = 0;
            }
            //temp.setIddespacho(BigDecimal.valueOf(System.currentTimeMillis()));
            temp.setIdgrupo(grupo);
            mParent.guardarDespacho(temp);

        }
    }

}
